package shuati.shuzimali;

import java.util.HashMap;
import java.util.Map;

/**
 * @author : LdLtd
 * @Date : 2024/4/14
 * @Description:3 ． 二 数 之 和 变 形 ，
 * 给 定 一 个 数 组 和 数 组 长 度 和 sum ，
 * 给 出 数 组 中 和 数 与 sum 相 同 的 数 组 的 对 数
 */
public class q2303 {
    public static void main(String[] args) {
        int[] nums = {2, 4, 3, 6, 1, 5, 3};
        int sum = 6;
        findPairs(nums, sum);
    }

    public static void findPairs(int[] nums, int sum) {
        Map<Integer, Integer> map = new HashMap<>();
        long res=0;
        // 统计数组中每个元素出现的次数
        // 遍历数组，查找与当前元素的和为sum的另一个元素
        for (int num : nums) {
            int complement = sum - num;
            if (map.containsKey(complement)) {
                int count = map.get(complement);
                 res+=count;
                 System.out.println(num + " " + complement);
            }
            map.put(num,map.getOrDefault(num,0)+1);
        }
        System.out.println(res);
    }
}
